package com.ruoyi.common.core.Entity;

import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.sql.Timestamp;
import java.util.HashMap;
import java.util.Map;

/*
    兑换记录实体类
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("兑换记录对象")
public class Exchange {
    @ApiModelProperty("兑换记录ID")
    @Excel(name = "兑换记录ID")
    private Long exchange_id; //兑换记录ID
    @ApiModelProperty("订单ID")
    @Excel(name = "订单ID")
    private Long order_id; //订单ID
    @ApiModelProperty("对应的用户ID")
    @Excel(name = "对应的用户ID")
    private Long exchange_user_id; //对应的用户ID
    @ApiModelProperty("商家ID")
    @Excel(name = "商家ID")
    private Long store_id; //商家ID
    @ApiModelProperty("商品ID")
    @Excel(name = "商品ID")
    private Long goods_id; //商品ID
    @ApiModelProperty("商品个体ID")
    @Excel(name = "商品个体ID")
    private Long goods_item_id; //实体商品个体ID
    @ApiModelProperty("优惠券ID")
    @Excel(name = "优惠券ID")
    private Long coupons_id; //优惠券ID
    @ApiModelProperty("优惠券个体ID")
    @Excel(name = "优惠券个体ID")
    private Long coupons_item_id; //优惠券个体ID
    @ApiModelProperty("兑换记录状态（已使用/已兑换未使用/已过期）")
    @Excel(name = "兑换记录状态（已使用/已兑换未使用/已过期）")
    private String exchange_status; //兑换记录状态（已使用/已兑换未使用/已过期）
    @ApiModelProperty("核销商家名称（核销后显示核销商家名称）")
    @Excel(name = "核销商家名称")
    private String exchange_store; //核销商家（核销后显示核销商家名称）
    @ApiModelProperty("使用时间")
    @Excel(name = "使用时间")
    private Timestamp use_time; //使用时间
    @ApiModelProperty("微信立减金链接")
    @Excel(name = "微信立减金链接")
    private String link; //微信立减金链接
    @ApiModelProperty("用户姓名（检索使用）")
    private String userName; //用户姓名（检索使用）
    @ApiModelProperty("商家名称（检索使用）")
    private String storeName; //商家名称（检索使用）
    @ApiModelProperty("商品名称（检索使用）")
    private String goodsName; //商品名称（检索使用）
    @ApiModelProperty("优惠券名称（检索使用）")
    private String couponsName; //优惠券名称（检索使用）

    private Map<String,Object> params; //请求参数

    public Map<String, Object> getParams() {
        if (params == null) {
            params = new HashMap<>();
        }
        return params;
    }

    public void setParams(Map<String, Object> params) {
        this.params = params;
    }
}
